<?php
require_once(FWK_EXCEPTION."CustonException.class.php");
require_once(BIB_ACTIVE_RECORD);
require_once(FWK_MODEL."AbsModelDao.class.php");
require_once(FWK_MODEL."Upload.class.php");
require_once(FWK_UTIL."FormataDatas.class.php");
/**
 * Classe modelo para os premios
 *
 * @author Vinicius Rodrigues <viniciusmr3@gmail.com>
 * @since 1.0 - 23/11/2012
 */
class Premio extends AbsModelDao{

	public $_table = "premios";

	public $_id = "id_premio";

	public function pesquisarPremiosPorFiltros($id_categoria, $id_cidade, $titulo_premio){
	
		$strQuery = "SELECT
							p.id_premio, p.titulo_premio, p.valor_premio, p.cod_premio, p.img_premio, c.nome_cidade, p.pontos_premio
					 FROM 
					 		".$this->_table." p INNER JOIN cidades c ON (c.id_cidade = p.id_cidade) 
					 		 					INNER JOIN credenciados cr ON (p.id_credenciado = cr.id_credenciado)
					 		 					INNER JOIN categoria_estabelecimento ct ON (ct.id_categoria = cr.id_categoria) 
					 WHERE status = 'A' ";
		
		if($id_categoria != null)
			$strQuery .= " AND ct.id_categoria =  ".$id_categoria;
		
		if($id_cidade != null)
			$strQuery .= " AND p.id_cidade =  ".$id_cidade;
					
		if($titulo_premio != null)
			$strQuery .= " AND p.titulo_premio LIKE   '%".$titulo_premio."%'";
		
		$arrRet = ControlDB::getAll($strQuery,3);
		return $arrRet;
	}
	
	public function getListaPremios(){
		$strQuery = "SELECT
							id_premio, id_credenciado, id_cidade,
							titulo_premio, cod_premio, img_premio, valor_premio, desc_premio
					 FROM 
					 		".$this->_table." WHERE status = 'A' ";
		$arrRet = ControlDB::getAll($strQuery,3);
		return $arrRet;
	}
		
	public function getListaGrid($limitIni=0, $numRegs=15, $count=false){
		$strQuery = "SELECT ";
		if($count){
			$strQuery.= " count(id_premio) ";
		}else{
			$strQuery .= "id_premio, titulo_premio as 'Título', cod_premio as 'Código',
						  e.nome_credenciado as 'Estabelecimento', c.nome_cidade as 'Cidade' ";
		}
		$strQuery .= " FROM
					 		".$this->_table." p LEFT JOIN credenciados e ON (e.id_credenciado = p.id_credenciado) 
					 							LEFT JOIN cidades c ON (c.id_cidade = p.id_cidade)  WHERE status = 'A'
					 		ORDER BY titulo_premio desc  ";
		if(!$count){
			$strQuery .= " LIMIT
								".$limitIni." ,".$numRegs;
		}
		
		$arrRet = ControlDB::getAll($strQuery,3);
		return $arrRet;
	}	

	public function alterar($id=null,$post,$file){
		try{
			self::salvaPostAutoUtf8($post);
			
			$this->id_premio = $id;
				
			/**
			 * UPLOAD DO ARQUIVO
			 */
			parent::uploadArquivoFwk("img_premio", $this->id_premio, $file, PASTA_UPLOADS_ARQUIVOS."premio/");
				
			
			self::replace();
			if(self::ErrorMsg()){
				print("<pre>");
				print_r($post);
				die("<br/><br /><h1>".self::ErrorMsg()."</h1>");
			}
		}catch(DaoException $e){
			throw new CustonException($e->getMensagem());
		}
	}

}
?>